﻿using System.Xml.Serialization;
using CMISForSharePoint.cmisEnums;

namespace CMISForSharePoint.cmisTypes
{

    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXmlDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUriDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyStringDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtmlDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimalDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTimeDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyIntegerDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyIdDefinitionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBooleanDefinitionType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyDefinitionType
    {

        private string nameField;

        private string idField;

        private string displayNameField;

        private string descriptionField;

        private enumPropertyType propertyTypeField;

        private enumCardinality cardinalityField;

        private enumUpdateability updateabilityField;

        private bool inheritedField;

        private bool inheritedFieldSpecified;

        private bool requiredField;

        private bool queryableField;

        private bool orderableField;

        private cmisChoiceType[] itemsField;

        private bool openChoiceField;

        private bool openChoiceFieldSpecified;

        private System.Xml.XmlElement[] anyField;

        private System.Xml.XmlAttribute[] anyAttrField;

        /// <remarks/>
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        public string id
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }

        /// <remarks/>
        public string displayName
        {
            get
            {
                return this.displayNameField;
            }
            set
            {
                this.displayNameField = value;
            }
        }

        /// <remarks/>
        public string description
        {
            get
            {
                return this.descriptionField;
            }
            set
            {
                this.descriptionField = value;
            }
        }

        /// <remarks/>
        public enumPropertyType propertyType
        {
            get
            {
                return this.propertyTypeField;
            }
            set
            {
                this.propertyTypeField = value;
            }
        }

        /// <remarks/>
        public enumCardinality cardinality
        {
            get
            {
                return this.cardinalityField;
            }
            set
            {
                this.cardinalityField = value;
            }
        }

        /// <remarks/>
        public enumUpdateability updateability
        {
            get
            {
                return this.updateabilityField;
            }
            set
            {
                this.updateabilityField = value;
            }
        }

        /// <remarks/>
        public bool inherited
        {
            get
            {
                return this.inheritedField;
            }
            set
            {
                this.inheritedField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool inheritedSpecified
        {
            get
            {
                return this.inheritedFieldSpecified;
            }
            set
            {
                this.inheritedFieldSpecified = value;
            }
        }

        /// <remarks/>
        public bool required
        {
            get
            {
                return this.requiredField;
            }
            set
            {
                this.requiredField = value;
            }
        }

        /// <remarks/>
        public bool queryable
        {
            get
            {
                return this.queryableField;
            }
            set
            {
                this.queryableField = value;
            }
        }

        /// <remarks/>
        public bool orderable
        {
            get
            {
                return this.orderableField;
            }
            set
            {
                this.orderableField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("choiceBoolean", typeof(cmisChoiceBooleanType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceDateTime", typeof(cmisChoiceDateTimeType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceDecimal", typeof(cmisChoiceDecimalType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceHtml", typeof(cmisChoiceHtmlType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceId", typeof(cmisChoiceIdType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceInteger", typeof(cmisChoiceIntegerType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceString", typeof(cmisChoiceStringType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceUri", typeof(cmisChoiceUriType))]
        [System.Xml.Serialization.XmlElementAttribute("choiceXml", typeof(cmisChoiceXmlType))]
        public cmisChoiceType[] Items
        {
            get
            {
                return this.itemsField;
            }
            set
            {
                this.itemsField = value;
            }
        }

        /// <remarks/>
        public bool openChoice
        {
            get
            {
                return this.openChoiceField;
            }
            set
            {
                this.openChoiceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool openChoiceSpecified
        {
            get
            {
                return this.openChoiceFieldSpecified;
            }
            set
            {
                this.openChoiceFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAnyElementAttribute()]
        public System.Xml.XmlElement[] Any
        {
            get
            {
                return this.anyField;
            }
            set
            {
                this.anyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAnyAttributeAttribute()]
        public System.Xml.XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }
    }



    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyBooleanDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyBooleanDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceBooleanType[] defaultValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceBooleanType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }
    }



    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyDateTimeDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyDateTimeDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceDateTimeType[] defaultValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceDateTimeType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyDecimalDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyDecimalDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceDecimalType[] defaultValueField;

        private enumDecimalPrecision precisionField;

        private bool precisionFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceDecimalType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }

        /// <remarks/>
        public enumDecimalPrecision precision
        {
            get
            {
                return this.precisionField;
            }
            set
            {
                this.precisionField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool precisionSpecified
        {
            get
            {
                return this.precisionFieldSpecified;
            }
            set
            {
                this.precisionFieldSpecified = value;
            }
        }
    }


    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyHtmlDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyHtmlDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceHtmlType[] defaultValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceHtmlType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyIdDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyIdDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceIdType[] defaultValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceIdType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyIntegerDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyIntegerDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceIntegerType[] defaultValueField;

        private string maxValueField;

        private string minValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceIntegerType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "integer")]
        public string maxValue
        {
            get
            {
                return this.maxValueField;
            }
            set
            {
                this.maxValueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "integer")]
        public string minValue
        {
            get
            {
                return this.minValueField;
            }
            set
            {
                this.minValueField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyStringDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyStringDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceStringType[] defaultValueField;

        private string maxLengthField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceStringType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "integer")]
        public string maxLength
        {
            get
            {
                return this.maxLengthField;
            }
            set
            {
                this.maxLengthField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyUriDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyUriDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceUriType[] defaultValueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceUriType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.cmis.org/2008/05")]
    [System.Xml.Serialization.XmlRootAttribute("propertyXmlDefinition", Namespace = "http://www.cmis.org/2008/05", IsNullable = false)]
    public partial class cmisPropertyXmlDefinitionType : cmisPropertyDefinitionType
    {

        private cmisChoiceXmlType[] defaultValueField;

        private string schemaURIField;

        private string encodingField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("defaultValue")]
        public cmisChoiceXmlType[] defaultValue
        {
            get
            {
                return this.defaultValueField;
            }
            set
            {
                this.defaultValueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(DataType = "anyURI")]
        public string schemaURI
        {
            get
            {
                return this.schemaURIField;
            }
            set
            {
                this.schemaURIField = value;
            }
        }

        /// <remarks/>
        public string encoding
        {
            get
            {
                return this.encodingField;
            }
            set
            {
                this.encodingField = value;
            }
        }
    } 
}